<?php
class bdpermissao{
	
	//function __construct(&$db)
	function bdpermissao(&$db)
	{
        $this->db =& $db;
	}
	
	function listarSistema(){
		$sql	= "SELECT SEQ_SISTEMA, DSC_SISTEMA FROM SISTEMA";
		$q		= $this->db->execute($sql);
		$res	= $q->getRows();
		return  $res;
	}
	
	function _sistema($sistema){
		$sql	= "SELECT SEQ_SISTEMA, DSC_SISTEMA FROM SISTEMA WHERE SEQ_SISTEMA='".$sistema."'";
		$q		= $this->db->execute($sql);
		$res	= $q->getRows();
		return  $res;
	}
	
	function buscaPermissoes($pesquisa,$tipo = "POST"){
		$sql	= " SELECT 	PER.SEQ_PERFIL,
							PER.DSC_PERFIL,
							SIS.SEQ_SISTEMA,
							SIS.DSC_SISTEMA,
							IND_TIPO_PERFIL,
							AUX.DESCRICAO AS TIPO,
							CASE PER.FLG_ATIVO WHEN 1 THEN 'Ativo' ELSE 'Inativo' END AS FLG_ATIVO2,
							PER.FLG_ATIVO
					FROM PERFIL_USUARIO PEU
					LEFT JOIN SISTEMA SIS ON PEU.SEQ_SISTEMA=SIS.SEQ_SISTEMA
					LEFT JOIN PERFIL PER ON PER.SEQ_PERFIL=PEU.SEQ_PERFIL
					LEFT JOIN AUXILIAR AUX ON PER.IND_TIPO_PERFIL = AUX.CODIGO AND NOME_COLUNA='ind_tipo_perfil'						
					WHERE 1=1";
		
		if($tipo=="SESSAO"){
			$pesquisa = $_SESSION['pesquisa'];
		}
		
		//exit; 
		if($pesquisa['seq_sistema']){
			$sql .=" and SIS.SEQ_SISTEMA ='".$pesquisa['seq_sistema']."'";
		} 
		
		if($pesquisa['dsc_perfil']){
			$sql .=" and UPPER(PER.DSC_PERFIL) like UPPER('%".$pesquisa['dsc_perfil']."%')";
		} 
		
		if($pesquisa['flg_ativo']!=""){
			$sql .=" and PER.FLG_ATIVO ='".$pesquisa['flg_ativo']."'";
		} 
		
		$q		= $this->db->execute($sql);
		$res	= $q->getRows();

		return  $res;
		
	}
	
	function buscaPermissao($seq_perfil,$seq_sistema){
		$sql	= " SELECT 	PER.SEQ_PERFIL,
							PER.DSC_PERFIL,
							SIS.SEQ_SISTEMA,
							SIS.DSC_SISTEMA,
							IND_TIPO_PERFIL,
							AUX.DESCRICAO AS TIPO,
							CASE PER.FLG_ATIVO WHEN 1 THEN 'Ativo' ELSE 'Inativo' END AS FLG_ATIVO2,
							PER.FLG_ATIVO
					FROM PERFIL_USUARIO PEU
						LEFT JOIN SISTEMA SIS ON PEU.SEQ_SISTEMA=SIS.SEQ_SISTEMA
						LEFT JOIN PERFIL PER ON PER.SEQ_PERFIL=PEU.SEQ_PERFIL
						LEFT JOIN AUXILIAR AUX ON PER.IND_TIPO_PERFIL = AUX.CODIGO AND NOME_COLUNA='ind_tipo_perfil'
					WHERE PER.SEQ_PERFIL = '".$seq_perfil."' AND SIS.SEQ_SISTEMA='".$seq_sistema."'";		
		$q		= $this->db->execute($sql);
		$res	= $q->getRows();
				
		return  $res;
		
	}
	
	function listarTipo(){
		$sql = "SELECT CODIGO,DESCRICAO 
				FROM AUXILIAR 
				WHERE NOME_COLUNA='ind_tipo_perfil'";
		$q 		= $this->db->execute($sql);
		$res	= $q->getRows();
		
		return $res;
	}

	function listaModulos($perfil,$sistema){
		$sql 	= "	SELECT *
					FROM (	SELECT 	FOM.SEQ_FUNCIONALIDADE, FOM.DSC_FUNCIONALIDADE,  
								 	PEF.SEQ_FUNCIONALIDADE as FORMULARIO,	 
								 	FOM.SEQ_SISTEMA,  FOM.DSC_ROTA, 	
								 	SUM(IFNULL(PER.SEQ_PERFIL,0)) PERMISSAO,
								 	FOM.COD_ORDEM,FOM.FLG_MOSTRAR_MENU
							FROM  FUNCIONALIDADE FOM
									LEFT JOIN PERFIL_FUNCIONALIDADE PEF ON FOM.SEQ_FUNCIONALIDADE=PEF.SEQ_FUNCIONALIDADE
									LEFT JOIN PERFIL PER ON PEF.SEQ_PERFIL=PER.SEQ_PERFIL
										AND PEF.SEQ_PERFIL='".$perfil."'	
							WHERE (FOM.COD_FUNC_PAI IS NULL OR FOM.COD_FUNC_PAI=0)
							GROUP BY 	FOM.SEQ_FUNCIONALIDADE, FOM.DSC_FUNCIONALIDADE,  
						 				FOM.SEQ_SISTEMA,  FOM.DSC_ROTA, 
						 				PEF.SEQ_FUNCIONALIDADE, FOM.COD_ORDEM) FORM
					WHERE FORM.SEQ_SISTEMA='".$sistema."'
					ORDER BY COD_ORDEM";
		$q 		= $this->db->execute($sql);
		$res	= $q->getRows();		
		return $res;
	}
	
	function listaRotinas($perfil,$sistema,$pai){
		$sql 	= "	SELECT *
					FROM (	SELECT 	FOM.SEQ_FUNCIONALIDADE, FOM.DSC_FUNCIONALIDADE,  
								 	PEF.SEQ_FUNCIONALIDADE as FORMULARIO,	 
								 	FOM.SEQ_SISTEMA,  FOM.DSC_ROTA, 	
								 	SUM(IFNULL(PER.SEQ_PERFIL,0)) PERMISSAO,
								 	FOM.COD_ORDEM,FOM.FLG_MOSTRAR_MENU
							FROM  FUNCIONALIDADE FOM
									LEFT JOIN PERFIL_FUNCIONALIDADE PEF ON FOM.SEQ_FUNCIONALIDADE=PEF.SEQ_FUNCIONALIDADE
									LEFT JOIN PERFIL PER ON PEF.SEQ_PERFIL=PER.SEQ_PERFIL
										AND PEF.SEQ_PERFIL='".$perfil."'	
							WHERE FOM.COD_FUNC_PAI='".$pai."'
							GROUP BY 	FOM.SEQ_FUNCIONALIDADE, FOM.DSC_FUNCIONALIDADE,  
						 				FOM.SEQ_SISTEMA,  FOM.DSC_ROTA, 
						 				PEF.SEQ_FUNCIONALIDADE, FOM.COD_ORDEM) FORM
					WHERE FORM.SEQ_SISTEMA='".$sistema."'
					ORDER BY COD_ORDEM";
		$q		= $this->db->execute($sql);
		$res	= $q->getRows();
		return $res;
	}
	
	function apagarFormulario($perfil, $formulario){
		$sql 	= "DELETE FROM PERFIL_FUNCINALIDADE
					WHERE SEQ_PERFIL='".$perfil."' AND SEQ_FUNCIONALIDADE='".$formulario."'	";	
		$res = $this->db->execute($sql); 
		return $res;   
	}
	
	function incluirFormulario($perfil, $formulario){
		$sql 	= "INSERT INTO PERFIL_FUNCIONALIDADE (SEQ_PERFIL, SEQ_FUNCIONALIDADE)
					VALUES ('".$perfil."', '".$formulario."')";	
		$res = $this->db->execute($sql); 
		return $res;   
	}
	
	function validarPerfil($dsc_perfil,$perfil=""){
		$sql 	= "	SELECT 	COUNT(SEQ_PERFIL) QUANTIDADE
					FROM 	PERFIL
					WHERE 	UPPER(DSC_PERFIL)=UPPER('".$dsc_perfil."') ";
		if($perfil!=""){
			$sql .=" AND SEQ_PERFIL!='".$perfil."'";
		}
		
		$q		= $this->db->execute($sql);
		$res	= $q->getRows();
		return $res;
	}
}	
?>